// content-script-loader.js - 修正版本 (使用 IIFE 隔离作用域)

(function() {
    // 整个脚本都被包裹在 IIFE 中，形成局部作用域。
    // 这样，const 声明的变量就不会污染全局环境，即使脚本被多次注入也不会冲突。

    // 关键：获取插件资源的 URL 前缀
    const extensionId = chrome.runtime.id;
    // 构造 controller.js 的完整 URL
    const controllerUrl = `chrome-extension://${extensionId}/controller.js`;

    /**
     * 启动 RuleAct V3 框架。
     * 使用动态 import() 引入核心控制器。
     */
    async function initializeRuleAct() {
        // 优化：检查是否已运行过，防止重复添加 window.onload 事件监听器
        if (window.__RULEACT_LOADED__) {
            console.log("[RuleAct V3 Loader] Controller already loaded. Skipping re-initialization.");
            return;
        }
        window.__RULEACT_LOADED__ = true; // 设置运行标记

        try {
            // 使用完整的插件资源 URL 进行动态导入
            const controllerModule = await import(controllerUrl);

            // 在页面加载完成后运行控制器
            // 注意：当脚本被动态注入时，页面可能已经加载完毕，此时监听器会等待下一次加载。
            // 更好的做法是立即执行 run()，但保持 load 监听以兼容静态注入。
            if (document.readyState === 'complete' || document.readyState === 'interactive') {
                console.log("[RuleAct V3 Loader] Controller loaded and starting immediately...");
                controllerModule.run();
            } else {
                window.addEventListener('load', () => {
                    console.log("[RuleAct V3 Loader] Controller loaded and starting...");
                    controllerModule.run();
                });
            }


        } catch (error) {
            console.error("[RuleAct V3 Loader] 启动失败，请检查 web_accessible_resources 配置。", error);
        }
    }

    // 立即启动加载过程
    initializeRuleAct();

})(); // IIFE 结束